package com.lv7.core.entity;

import java.util.HashMap;
import java.util.Map;

/**
 * 回应
 * @author Oven
 *
 */
public class Response extends HashMap<String, Object> implements Map<String, Object> {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 5524160717525512443L;
	
	/**
	 * 成功状态
	 */
	public static final int SUCCESS = 1;	
	
	/**
	 * 失败状态
	 */
	public static final int FAIL = -1;	
	
	/**
	 * 内容为空，分页列表返回时使用
	 */
	public static final int EMPTY = 0;	
	
	/**
	 * 状态
	 */
	public static final String KEY_STATUS = "status";
	
	/**
	 * 错误消息
	 */
	public static final String KEY_MESSAGE = "msg";
	
	/**
	 * 数据
	 */
	public static final String KEY_DATA = "data";

	/**
	 * 构造方法
	 */
	public Response(){
		super();
		this.put(KEY_STATUS, FAIL);
	}
	
	/**
	 * 构造方法
	 * @param status 状态
	 */
	public Response(int status){
		super();
		this.put(KEY_STATUS, status);
	}
	
	/**
	 * 构造方法
	 * @param status 状态
	 * @param data 返回数据
	 */
	public Response(int status, Object data){
		super();
		this.put(KEY_STATUS, status);
		this.put(KEY_DATA, data);
	}
	
	/**
	 * 设置状态
	 * @param status 状态值
	 */
	public void setStatus(int status){
		this.put(KEY_STATUS, status);
	}
	
	/**
	 * 设置返回成功
	 */
	public void setSuccess(){
		this.put(KEY_STATUS, SUCCESS);
	}
	
	/**
	 * 设置返回成功
	 * @param data 返回数据
	 */
	public void setSuccess(Object data){
		this.put(KEY_STATUS, SUCCESS);
		this.put(KEY_DATA, data);
	}
	
	/**
	 * 设置返回错误
	 * @param message 错误原因
	 */
	public void setError(String message){
		this.put(KEY_MESSAGE, message);
	}
	
	/**
	 * 设置返回错误
	 * @param message 错误原因
	 */
	public void setError(String code, String message){
		this.put("code", code);
		this.put(KEY_MESSAGE, message);
	}
}
